package com.haojin.p2.servide;

import com.haojin.p2.bean.Customer;

/**
 * 
* @Description CustomerList为Customer对象的管理模块，内部用数组管理一组Customer对象
*              并提供相应的添加，修改，删除，遍历方法，共CustomerView调用
* @author .29. Email:1057500994@qq.com
* @version
* @date 2022年3月13日上午11:44:05
*
 */
public class CustomerList {
   private Customer[] customers;//用来保存对象的数组
   private int total = 0;       //记录已保存对象的数量
   /**
    * 用来初始化customers数组的构造器
    * @param totalCustomer：指定数组长度
    */
   public CustomerList(int totalCustomer) {
	   customers = new Customer[totalCustomer];
   }
   /**
    * 将指定的客户返回到数组中
    * @param customer
    * @return true：添加成功 false：添加失败
    */
   public boolean addCustomer(Customer customer) {
	   if(total >= customers.length){
		   return false;
	   }
	   customers[total++] = customer;
	   return true;
   }
   /**
    * 修改指定索引位置的客户信息
    * @param index
    * @param cust
    * @return true：添加成功 false：添加失败
    */
   public boolean replaceCustomer(int index, Customer cust){
	   if(index < 0  || index >= total){
		   return false;
	   }
	   customers[index] = cust;
       return true;
   }
   
   /**
    * 删除索引位置上的客户
    * @param index
    * @return true：删除成功 false：删除失败
    */
	public boolean deleteCustomer(int index) {
		if (index < 0 || index >= total) {
			return false;
		}
		for(int i = index;i < total -1;i++){
			customers[i] = customers[i+1];
		}
		//最后有数据的元素需要置空
//		customers[total-1] = null;
//		total--;
//		return true; 
//		或
		customers[--total] = null;
		return true;
   }
   public Customer[] getAllCustomers() {
	   Customer[] custs = new Customer[total];
	   for(int i = 0;i  < total;i++){
		   custs[i] = customers[i];
	   }
	   return custs;
	   }
   
   /**
    * 获取指定索引上的客户
    * @param index
    * @return 如果找到元素则返回；没找到返回null
    */
   public Customer getCustomer(int index) {
	   if(index < 0 || index >= total){
		   return null;
	   }
	   return customers[index];
   }
   /**
    * 获取客户的数量
    * @return 
    */
   public int getTotal(){
	   return total;  
   }

}
